//
//  visualizer.hpp
//  yuzon
//
//  Created by Alvin on 2023/3/29.
//

#pragma once

#include <opencv2/opencv.hpp>
#include "common.hpp"

void VisualizeResults(cv::Mat &image,
                      cv::Mat &annotation_image,
                      const HumanResults &human_results,
                      const KeypointResults &keypoint_results,
                      bool draw_bbox,
                      bool draw_pose,
                      int bbox_line_thickness,
                      int pose_keypoint_num,
                      int pose_circle_radius,
                      int pose_line_thickness);

void DrawBbox(cv::Mat &image,
              cv::Mat &annotation_image,
              const HumanResults &results,
              int line_thickness);

void DrawPose(cv::Mat &image,
              cv::Mat &annotation_image,
              const KeypointResults &results,
              int keypoint_num,
              int circle_radius,
              int line_thickness);

KeypointResults ConvertKeypoints(const KeypointResults &results);
